1. Field of the Invention
The present invention relates generally to the field of databases. Specifically, the present invention relates to a method and system for synchronizing data between multiple nodes.
2. Related Art
In the realm of hand-held computer systems (commonly referred to as personal digital assistants or PDAs), it is not uncommon for a data set to exist and be maintained both on the PDA and on at least one other device. For example, a user may maintain a calendar or address book on both the user's PDA and on another computer system (e.g., a personal computer system such as a desktop or laptop).
The entries in the data set can be referred to as records or data objects. When a change is made to a record in the data set residing on one device (hereinafter, also referred to as a node), it is desirable to have the data set on the other node be updated as well, so that the data set is synchronized on both nodes. Accordingly, processes have been developed to facilitate synchronizing the data sets on both nodes. These synchronization (“sync”) processes are known in the art.
It is becoming more common for people to use more than one computer system. Many people use a computer system at home and another one at work, for example. Traditionally, synchronization occurs between a PDA and a personal computer system (PC), one PC at a time. The data sets on each of the PCs may be somewhat different, and so sophisticated techniques are employed to ensure that the proper records are transferred between the PDA and each PC during synchronization.
However, the paradigm in which the PDA serves in essence as the nexus between the users home and office computer systems is not as applicable as it once was. As computer systems are networked, multiple communication pathways between PDAs and computer systems can exist. Records may be frequently shared between users, and quite often are distributed and stored across many nodes. Some records may be accessible by multiple users working from different nodes. In any event, different users may update a record in different ways, and the modified record may be distributed over different pathways. Along the way, the record may be further modified.
Currently, each record in a data set is identified by a record identifier (record ID). The task of assigning IDs to records is relegated to the PDA. When the PDA receives or creates a new record, it assigns a new record ID. This scheme works reasonably well in the relatively closed system consisting of the user's PDA and PCs. However, as records are shared and distributed as described above, the conventional scheme results in the same record being identified by different record IDs on different PDAs, because each PDA assigns its own record IDs. With the same record being identified differently by each node, it is difficult to propagate the record, or changes to the record, across the nodes. If the record is identified differently at different nodes, then it becomes necessary to reconcile the record ID at one node with the record IDs at each of the other nodes. In essence, it becomes necessary to identify each record using each of its possible record IDs. This is equivalent to attaching multiple IDs to each record. As the record is distributed from node to node, the accumulation of record IDs by which the record may be known can become quite unwieldy. Therefore, the notion of each PDA assigning record IDs is not as workable as before.
Accordingly, what is needed is a new system and/or method for identifying records such that the same record is not assigned different record IDs. It is also important that different records not be given the same record ID. In addition, in the realm of PDAs, there are other factors to consider. For example, relative to PCs, PDAs have less memory capacity and less address space. Thus, it is desirable to minimize to a practical extent the memory resources needed by a record identification scheme. Thus, what is also needed is a record identification scheme that carefully allocates the available address space. The present invention provides a novel solution to these needs.